home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / viewers / polyview / polyvw31.lha / Polyview3.1 / new / pvhelp.c < prev    next >
C/C++ Source or Header  |  1993-08-13  |  5KB  |  127 lines

  1. /*****************************************************************************
  2.  * NCSA Polyview 3.1                                                         *
  3.  *                                                                           *
  4.  * Version 3.1 changes and additions by Gilles Bourhis.                      *
  5.  * Version 3 changes and additions by Marc Andreessen.                       *
  6.  * Version 2 by Brian Calvert.                                               *
  7.  *                                                                           *
  8.  * Software Development Group                                                *
  9.  * National Center for Supercomputing Applications                           *
  10.  * University of Illinois at Urbana-Champaign                                *
  11.  *                                                                           *
  12.  * This is BETA release software.  As such it may contain software bugs and  *
  13.  * exhibit inconsistencies.                                                  *
  14.  *                                                                           *
  15.  * Please send bug reports to polyview@ncsa.uiuc.edu.                        *
  16.  *                                                                           *
  17.  * Copyright (c) 1992 The Board of Trustees of the University of Illinois.   *
  18.  *                                                                           *
  19.  * Permission to use, copy, and modify this software and its                 *
  20.  * documentation for educational, research, and non-profit purposes is       *
  21.  * hereby granted, provided that the above copyright notice, the original    *
  22.  * authors names, and this permission notice appear in all such copies.      *
  23.  * Any distribution of this software requires the explicit and written       *
  24.  * authorization of the authors.                                             *
  25.  *                                                                           *
  26.  * The University of Illinois makes no representations about the             *
  27.  * suitability of this software for any purpose.  It is provided "as is"     *
  28.  * without warranty of any kind.                                             *
  29.  *****************************************************************************/
  30.  
  31. /* $Id: pvhelp.c,v 1.2 93/08/13 14:21:21 gbourhis Exp $ */
  32.  
  33. #ifdef RCSLOG
  34. $Log:    pvhelp.c,v $
  35.  * Revision 1.2  93/08/13  14:21:21  gbourhis
  36.  * Change Version number.
  37.  * 
  38.  * Revision 1.1  92/09/18  10:55:26  marca
  39.  * Initial revision
  40.  * 
  41. #endif
  42.  
  43. #include "pv.h"
  44. #include "pvtokens.h"
  45. #include "pvhelp.h"
  46.  
  47. /* We consider the help subsystem to be localized here.  There is only
  48.    one help window, and it is filled and managed as required. */
  49.  
  50. static Widget help_base = NULL;
  51. static Widget help_text;
  52.  
  53. /* ----------------------------- GUIpostHelp ------------------------------ */
  54. /* This function creates the help screen if it doesn't already exist. */
  55. static void GUIpostHelp (char *text, char *title)
  56. {
  57.   /* If it's never been created, create it. */
  58.   if (help_base == NULL)
  59.     help_base = XmxMakeHelpTextDialog 
  60.       (gstate->base, (String)NULL, (String)NULL, &help_text);
  61.   
  62.   /* Set the text and title. */
  63.   XmxTextSetString (help_text, text);
  64.   XmxAdjustDialogTitle (help_base, title);
  65.   
  66.   /* Manage (or remanage) the dialog. */
  67.   XmxManageRemanage (help_base);
  68.  
  69.   return;
  70. }
  71.  
  72.  
  73. static char *commandstr = NULL;
  74.  
  75. static void do_help_on_commands (void)
  76. {
  77.   parse_t *p;
  78.  
  79.   if (commandstr == NULL)
  80.     {
  81.       commandstr = (char *)malloc (sizeof (char) * 10000);
  82.       commandstr[0] = '\0';
  83.       strcat (commandstr, oncommands_txt);
  84.       
  85.       for (p = gstate->parse_table; p->format[0] != '\0'; p++)
  86.         {
  87.           strcat (commandstr, "-->  ");
  88.           strcat (commandstr, p->format);
  89.           strcat (commandstr, "\n");
  90.         }
  91.     }
  92.  
  93.   GUIpostHelp (commandstr, "About Polyview 3.1 Commands");
  94.  
  95.   return;
  96. }
  97.  
  98.  
  99. /* ------------------------------ GUIdoHelp ------------------------------- */
  100. void GUIdoHelp (int help_token)
  101. {
  102.   switch (help_token)
  103.     {
  104.     case PV_HELP_ABOUT:
  105.       GUIpostHelp (about_txt, "About NCSA Polyview 3.1");
  106.       break;
  107.     case PV_HELP_ONCOMMANDS:
  108.       do_help_on_commands ();
  109.       break;
  110.     case PV_MAIN_HELP_ONWINDOW:
  111.       GUIpostHelp (main_txt, "Polyview 3.1: Help On Main Window");
  112.       break;
  113.     case PV_PVIEW_HELP_ONWINDOW:
  114.       GUIpostHelp (pview_txt, "Polyview 3.1: Help on Polyview Window");
  115.       break;
  116.     case PV_PALETTE_HELP_ONWINDOW:
  117.       GUIpostHelp (pal_txt, "Polyview 3.1: Help on Palette Window");
  118.       break;
  119.     case PV_INFO_BUTTON_HELP:
  120.       GUIpostHelp (info_txt, "Polyview 3.1: Help on Info Window");
  121.       break;
  122.     case PV_TIME_BUTTON_HELP:
  123.       GUIpostHelp (time_txt, "Polyview 3.1: Help on Time Window");
  124.       break;
  125.     }
  126. }
  127.